classDiagram
  class A {
    p : int | None
    f(x: str | None | (list[A] | list[int]), y: A | (int | str) | None)* int | str | list[A | int]
  }
